<?php

/**
 *  Класс FilleHelper
 *  Помошник для непосредственной работы с Файлами
 * 
 * @author Kosty Ryabichenko <k.ryabichenko@gmail.com>
 * @version 1.0
 */
class FilleHelper {

    // Возврашает название всех файлов в заданой дериктории 
    public static function getNameFilesInDirectory($dir) {
        $files = array_diff(scandir($dir . ''), array('.', '..'));
        return $files;
    }

    // Создает файл
    public static function createFile($dir, $file, $content, $access = 0755) {
        chmod($dir, $access);
        $fp = fopen($dir . $file, 'w');
        fwrite($fp, $content);
        fclose($fp);
        chmod($dir . $file, $access);
    }
    
    // Создать папку
    public static function createDir($dir) {
        mkdir($dir, 0777);
    }
    
    // Удалить файл
    public static function dropFile($dir, $file) {
        unlink($dir . $file);
    }

    // Читает файл
    public static function readFile($dir, $file) {
        $fp = fopen($dir . $file, "rt"); // Открываем файл в режиме чтения
        if ($fp)
            return fpassthru($fp);
        else
            die("Ошибка при открытии файла" . $dir . $file);
    }

    

    // Копирует директории
    public static function rec_copy($from_path, $to_path, $mkdir = false) {

        if ($mkdir) {
            mkdir($from_path, 0777);
        }

        $this_path = getcwd();
        if (is_dir($from_path)) {
            chdir($from_path);
            $handle = opendir('.');
            while (($file = readdir($handle)) !== false) {
                if (($file != ".") && ($file != "..")) {
                    if (is_dir($file)) {
                        FilleHelper::rec_copy($from_path . $file . "/", $to_path . $file . "/");
                        chdir($from_path);
                    }
                    if (is_file($file))
                        copy($from_path . $file, $to_path . $file);
                }
            }
            closedir($handle);
        }
    }

}

